%{
#include <stdio.h>
#include <string.h>
#include "gram.tab.h" 
void printflex(char text[]) {
	printf("<%s:%s>",text,yytext);
}
void copy(char **dest, char *src) {
  *dest = malloc(yyleng + 1);
  strcpy(*dest,src);
}
%}
NUM [0-9]+(.[0-9]*)?
CLEF package|class|function|public|private|var|Number|void|if|else
LETTRE [a-zA-Z]
OPERATEURCOMP <|>|<=|>=|==

%%
this { return THIS;}
{NUM} { yylval.floatVal = atof(yytext); return NUM; }
{CLEF} { copy(&(yylval.string),yytext); return CLEF; }
{LETTRE}[a-zA-Z0-9_]* { copy(&(yylval.string),yytext); return MOT; }
{OPERATEURCOMP} { return OPCOMP; }

\+ { return yytext[0]; }
\- { return yytext[0]; }
\/ { return yytext[0]; }
\* { return yytext[0]; }
= { return yytext[0]; }
\. { return yytext[0]; }
\{ { return yytext[0]; }
\} { return yytext[0]; }
\( { return yytext[0]; }
\) { return yytext[0]; }
: { return yytext[0]; }
; { return yytext[0]; }
, { return yytext[0]; }
"\n" { return yytext[0]; }
[ \t] { printf("%s",yytext); }
. { return yytext[0]; }
%%
